<template>
  <div class="box">
    <div class="title">
      <h4>芙蓉楼送辛渐</h4>
      <!-- 按钮位置 -->
      <span @click="isShow = !isShow" class="btn">
        {{ isShow ? '收起' : '展开' }}
      </span>
    </div>

    <!-- 切换显示隐藏的部分  -->
    <div v-show="isShow" class="container">
      <p>寒雨连江夜入吴,</p>
      <p>平明送客楚山孤。</p>
      <p>洛阳亲友如相问，</p>
      <p>一片冰心在玉壶。</p>
    </div>
  </div>
</template>

<script>
export default {
  // ESLint 要求必须用多个单词作为组件名
  // 很麻烦, 所以建议关闭 ESLint
  // 在 vue.config.js 中,设置 lintOnSave: false
  // 重启服务器
  // 组件如果没有 name, 默认使用文件名作为 name
  name: 'MyPanel',
  data() {
    return {
      isShow: true
    }
  }
}
</script>

<style scoped>
/* 
在 style 标签上加 scoped 属性
表示给当前组件的样式添加作用域, 当前 style 的样式, 只会应用于当前 .vue 文件中的标签上

scoped 的原理 (面试题):
每个组件都有一个独一无二的标识: hash
1. 给当前组件内的所有标签添加一个属性: data-v-hash
2. 所有 style 中的 css 选择器, 都会添加一个属性选择器
既要满足是 h3 标签, 还需要保证 h3 标签上有这个属性
才会应用样式
h3[data-v-hash] {}
 */
h3 {
  color: green;
}
.box {
  box-shadow: 0 1px 4px 0 rgba(0, 0, 0, 0.5);
  border-radius: 4px;
  border: 1px solid #ebeef5;
  background-color: #fff;
  overflow: hidden;
  color: #303133;
  transition: .3s;
}
.title {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 10px 20px;
}
.title h4 {
  line-height: 2;
  margin: 0;
}
.container {
  padding: 0 20px;
  border-top: 1px solid #ccc;
}
.btn {
  /* 鼠标改成手的形状 */
  cursor: pointer;
}
</style>